package com.projetTDA.tournoi;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ListView;

import com.projetTDA.R;
import com.projetTDA.bdd.DataAccessLayer;
import com.projetTDA.metier.Equipe;
import com.projetTDA.metier.Joueur;

//Fonction qui permet d'ajouter des joueurs a une equipe
public class AddPlayersToTeam extends ListActivity
{
	public static ArrayList<Joueur> listJoueurAjoutEquipe;
	public static ArrayList<Integer> listePositionSelected;
	public static ArrayList<Joueur> listJoueurChoisi;
	int numeroEquipe;

	private ListView list;

	static
	{
		listJoueurAjoutEquipe = new ArrayList<Joueur>();
		listePositionSelected = new ArrayList<Integer>();
		listJoueurChoisi = new ArrayList<Joueur>();
	}

	//Une fois que l'activite a ete creee
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.add_joueurs_equipe);

		Button BTN_Validey = (Button) findViewById(R.id.valider_liste_joueur_equipe);

		numeroEquipe = getIntent().getIntExtra("num_btn", 0);

		BTN_Validey.setOnClickListener(new OnClickListener()
		{			
			@Override
			public void onClick(View v) {

				int cpt = 0;
				Joueur toAdd = null;

				CreerTournoi2.adaptersMatchs.get(numeroEquipe).clear();

				for(Integer i : listePositionSelected)
				{
					toAdd = listJoueurAjoutEquipe.get(i);
					listJoueurChoisi.add(toAdd);
					System.out.println(toAdd);
					CreerTournoi2.listeEquipesCrees.get(numeroEquipe).getListe_joueur().add(toAdd);

					CreerTournoi2.adaptersMatchs.get(numeroEquipe).add(toAdd.getPseudo());
					CreerTournoi2.adaptersMatchs.get(numeroEquipe).notifyDataSetChanged();

					cpt++;
				}
				listJoueurAjoutEquipe.removeAll(listJoueurChoisi);
				listePositionSelected.clear();

				DataAccessLayer myDal = new DataAccessLayer(AddPlayersToTeam.this);
				Equipe eqpCouranteBDD = myDal.ajouterEquipeBDD(CreerTournoi2.listeEquipesCrees.get(numeroEquipe));
				CreerTournoi2.equipesDuTournoi.put(eqpCouranteBDD, null);

				finish();

			}
		});

		//Recuperation automatique de la liste (l'id de cette liste est nommee obligatoirement @android:id/list afin d'etre detectee)
		list = getListView();

		// Creation de la ArrayList qui nous permettra de remplir la listView
		ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();

		// On declare la HashMap qui contiendra les informations pour un item
		HashMap<String, String> map;

		for(Joueur j : listJoueurAjoutEquipe)
		{
			map = new HashMap<String, String>();
			map.put("pseudo", j.getPseudo());
			listItem.add(map);
		}

		//Utilisation de notre adaptateur qui se chargera de placer les valeurs de notre liste automatiquement et d'affecter un tag � nos checkbox

		MyListAdapterAddJoueur mSchedule = 
				new MyListAdapterAddJoueur(this.getBaseContext(), listItem, R.layout.add_joueurs_equipe_detail, new String[] { "pseudo" }, new int[] {	R.id.pseudo_2 });

		// On attribue a notre listView l'adaptateur que l'on vient de creer
		list.setAdapter(mSchedule);
	}

	//Fonction appelee au clic d'une des checkbox
	public void MyHandler(View v) {
		CheckBox cb = (CheckBox) v;
		//on recupere la position a l'aide du tag defini dans la classe MyListAdapter
		int position = Integer.parseInt(cb.getTag().toString());

		// On recupere l'element sur lequel on va changer la couleur
		View o = list.getChildAt(position).findViewById(R.id.blocCheck);

		//On change la couleur
		if (cb.isChecked()) {
			listePositionSelected.add(Integer.valueOf(position));
			o.setBackgroundResource(R.color.green_3);
		} else {
			listePositionSelected.remove(Integer.valueOf(position));
			o.setBackgroundResource(R.color.blue_3);
		}
	}

}
